/**
 *adminebiz
 * 01/08/2007
 * EnviarMail.java
 */
package com.b2mining.integration.helper;

import java.util.Vector;
import java.util.*;import java.io.*;import javax.mail.*;import javax.mail.internet.*;import javax.activation.*;
import javax.mail.MessagingException;

import org.apache.log4j.Logger;

import com.b2mining.integration.mail.Destinatario;
import com.b2mining.integration.mail.MailAttributes;
import com.b2mining.integration.mail.Mailer;

/**
 * Clase 
 * @since 01/08/2007
 * @author adminebiz <BR>
 * Analista Programador: Richard Linares
 */
/**
 * @author adminebiz
 *
 */
public class EnviarMail {
	
	/**
	 * obtiene la lista de usuarios para enviar los correos 
	 * segun la accion q esta como parametro, se devuelve un objeto tipo Vector
	 * @param java.lang.String accion
	 * @return java.util.Vector
	 */
	
	public static void enviarEmail(MailAttributes matts) {
		Logger log = Logger.getLogger(EnviarMail.class);
		try{
			log.debug("Enviando email");
			new Mailer().sendMail(matts);
		}
		catch(MessagingException me){
			log.debug("Error al enviar el mail "+me.toString());
		}
		catch (Exception ex){
			log.debug("No se pudo enviar correo al Operador:"+ex);
		}
	}
	
	public static void enviarEmail2(MailAttributes matts, String file) {
		Logger log = Logger.getLogger(EnviarMail.class);
		try{
			log.debug("Enviando email");
			new Mailer().sendMail2(matts,file);
		}
		catch(MessagingException me){
			log.debug("Error al enviar el mail "+me.toString());
		}
		catch (Exception ex){
			log.debug("No se pudo enviar correo al Operador:"+ex);
		}
	}
	
	
	public static void enviandoMailError(String subject, String message, String accion, String documento) {
		Logger log = Logger.getLogger(EnviarMail.class);
			//	obteniendo usuarios para el envio de email
	        MailAttributes matts = new MailAttributes();
	        String milista=Helper.mailToDummy;
	        Vector adm=new Vector();
	        
	        String[] listacorreos;
	        listacorreos=milista.split(";");
	        
	        if(listacorreos.length>0){
	        	for(int x=0;x<listacorreos.length;x++){
	        		Destinatario d= new Destinatario();
	    	        d.setNombre(listacorreos[x]);
	    	        d.setCorreo(listacorreos[x]);
	    	        log.info("correo leido: "+listacorreos[x]);
	    	        adm.add(d);
	        	}
	        }
	        else{
	        	log.debug("variable mailtoDummy en el properties esta vacia ... ");
	        }

			if(adm!=null)
				matts.setPara(adm);
			//obtuve los usuarios para en el envio de email
			if (matts.getCountPara()>0){
				matts.setSubject(subject);
				matts.setMessage(message);
				matts.setFrom(Helper.getMailFrom());
				log.debug("Subject:"+matts.getSubject());
				log.debug("Mensaje:"+matts.getMessage());
				try{
					enviarEmail(matts);
				}
				catch(Exception e){
					log.debug("Se produjo un error al enviar email " +
							"accion "+accion+" documento "+documento);
				}
				
			}
			else{
				log.debug("No hay destinatarios");
			}
		}
	
	public static void enviandoMailError2(String subject, String message, String documento) {
		Logger log = Logger.getLogger(EnviarMail.class);
			//	obteniendo usuarios para el envio de email
	        MailAttributes matts = new MailAttributes();
	        String milista=Helper.mailToDummy;
	        Vector adm=new Vector();
	        
	        String[] listacorreos;
	        listacorreos=milista.split(";");
	        
	        if(listacorreos.length>0){
	        	for(int x=0;x<listacorreos.length;x++){
	        		Destinatario d= new Destinatario();
	    	        d.setNombre(listacorreos[x]);
	    	        d.setCorreo(listacorreos[x]);
	    	        log.info("correo leido: "+listacorreos[x]);
	    	        adm.add(d);
	        	}
	        }
	        else{
	        	log.debug("variable mailtoDummy en el properties esta vacia ... ");
	        }

			if(adm!=null)
				matts.setPara(adm);
			//obtuve los usuarios para en el envio de email
			if (matts.getCountPara()>0){
				matts.setSubject(subject);
				matts.setMessage(message);
				matts.setFrom(Helper.getMailFrom());
				log.debug("Subject:"+matts.getSubject());
				log.debug("Mensaje:"+matts.getMessage());
				try{
					enviarEmail2(matts,documento);
				}
				catch(Exception e){
					log.error("Se produjo un error al enviar email " +
							" documento "+documento);
				}
				
			}
			else{
				log.debug("No hay destinatarios");
			}
		}
	
}
